Apache POI ব্যবহার করে Excel ফাইলে টেবিল তৈরি এবং ডেটা ইনসার্ট করা খুবই সহজ। এখানে আমরা দেখব কীভাবে HSSF বা XSSF (অর্থাৎ .xls এবং .xlsx) ফরম্যাটে টেবিল তৈরি এবং ডেটা ইনসার্ট করা যায়। টেবিল তৈরি করতে হলে আপনাকে প্রথমে একটি শীট (sheet) তৈরি করতে হবে, তারপর সেল (cell) তৈরি করে ডেটা ইনসার্ট করতে হবে। এরপর সেই সেলগুলোকে একটি টেবিলের অংশ হিসেবে ফরম্যাট করতে হবে।
Excel এ টেবিল তৈরি এবং ডেটা ইনসার্ট করার ধাপ
1. XSSF ব্যবহার করে (.xlsx) ফরম্যাটে টেবিল তৈরি করা
এখানে .xlsx ফরম্যাটে টেবিল তৈরি এবং ডেটা ইনসার্ট করার উদাহরণ দেওয়া হয়েছে:
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import java.io.FileOutputStream;
import java.io.IOException;
public class ExcelTableExample {
public static void main(String[] args) throws IOException {
// WorkBook তৈরি
XSSFWorkbook workbook = new XSSFWorkbook();
// শীট তৈরি
Sheet sheet = workbook.createSheet("Employee Data");
// টেবিলের হেডার রো তৈরি
Row headerRow = sheet.createRow(0);
headerRow.createCell(0).setCellValue("Employee ID");
headerRow.createCell(1).setCellValue("Name");
headerRow.createCell(2).setCellValue("Position");
headerRow.createCell(3).setCellValue("Salary");
// টেবিলের ডেটা ইনসার্ট করা
Object[][] employeeData = {
{1, "John Doe", "Manager", 75000},
{2, "Jane Smith", "Developer", 65000},
{3, "Mike Johnson", "Designer", 50000},
{4, "Emily Davis", "Tester", 45000}
};
// ডেটার জন্য রো তৈরি এবং ইনসার্ট
int rowNum = 1;
for (Object[] rowData : employeeData) {
Row row = sheet.createRow(rowNum++);
int cellNum = 0;
for (Object cellData : rowData) {
Cell cell = row.createCell(cellNum++);
if (cellData instanceof String) {
cell.setCellValue((String) cellData);
} else if (cellData instanceof Integer) {
cell.setCellValue((Integer) cellData);
}
}
}
// ফাইল আউটপুট
try (FileOutputStream fileOut = new FileOutputStream("employee_data.xlsx")) {
workbook.write(fileOut);
}
workbook.close();
}
}
কোড ব্যাখ্যা:
- XSSFWorkbook: এটি .xlsx ফরম্যাটের Excel ফাইল তৈরি করতে ব্যবহৃত হয়।
- createSheet(): একটি নতুন শীট তৈরি করা হচ্ছে "Employee Data" নামের।
- createRow(): একটি নতুন রো তৈরি করা হচ্ছে। প্রথম রোটি হেডার রো হিসেবে ব্যবহৃত হবে এবং পরবর্তী রোতে ডেটা ইনসার্ট করা হবে।
- createCell(): প্রতিটি রোতে সেল তৈরি করা হচ্ছে এবং সেলে ডেটা ইনসার্ট করা হচ্ছে।
- FileOutputStream: এটি Excel ফাইলটিকে আউটপুট ফাইলে সেভ করতে ব্যবহৃত হয়।
2. HSSF ব্যবহার করে (.xls) ফরম্যাটে টেবিল তৈরি করা
এখানে .xls ফরম্যাটে টেবিল তৈরি এবং ডেটা ইনসার্ট করার উদাহরণ দেওয়া হয়েছে:
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import java.io.FileOutputStream;
import java.io.IOException;
public class ExcelTableExampleHSSF {
public static void main(String[] args) throws IOException {
// WorkBook তৈরি
HSSFWorkbook workbook = new HSSFWorkbook();
// শীট তৈরি
Sheet sheet = workbook.createSheet("Employee Data");
// টেবিলের হেডার রো তৈরি
Row headerRow = sheet.createRow(0);
headerRow.createCell(0).setCellValue("Employee ID");
headerRow.createCell(1).setCellValue("Name");
headerRow.createCell(2).setCellValue("Position");
headerRow.createCell(3).setCellValue("Salary");
// টেবিলের ডেটা ইনসার্ট করা
Object[][] employeeData = {
{1, "John Doe", "Manager", 75000},
{2, "Jane Smith", "Developer", 65000},
{3, "Mike Johnson", "Designer", 50000},
{4, "Emily Davis", "Tester", 45000}
};
// ডেটার জন্য রো তৈরি এবং ইনসার্ট
int rowNum = 1;
for (Object[] rowData : employeeData) {
Row row = sheet.createRow(rowNum++);
int cellNum = 0;
for (Object cellData : rowData) {
Cell cell = row.createCell(cellNum++);
if (cellData instanceof String) {
cell.setCellValue((String) cellData);
} else if (cellData instanceof Integer) {
cell.setCellValue((Integer) cellData);
}
}
}
// ফাইল আউটপুট
try (FileOutputStream fileOut = new FileOutputStream("employee_data.xls")) {
workbook.write(fileOut);
}
workbook.close();
}
}
কোড ব্যাখ্যা:
এটি HSSF ব্যবহার করে .xls ফরম্যাটে Excel ফাইল তৈরি করে। কোডের স্ট্রাকচার এবং কনসেপ্ট আগের XSSF উদাহরণের মতো একই।
3. Excel টেবিল ফরম্যাটিং (Optional)
যদি আপনি টেবিলের সেলগুলির ফরম্যাটিং করতে চান (যেমন, সেলের বর্ডার, ব্যাকগ্রাউন্ড কালার ইত্যাদি), তাহলে CellStyle ব্যবহার করতে পারেন।
উদাহরণ:
// CellStyle তৈরি করা
CellStyle style = workbook.createCellStyle();
style.setBorderBottom(BorderStyle.THIN);
style.setBorderTop(BorderStyle.THIN);
style.setBorderLeft(BorderStyle.THIN);
style.setBorderRight(BorderStyle.THIN);
style.setAlignment(HorizontalAlignment.CENTER);
// স্টাইল সেলস এ অ্যাপ্লাই করা
Cell cell = row.createCell(0);
cell.setCellValue("Employee ID");
cell.setCellStyle(style);
এটি সেলগুলিতে সীমানা (border) এবং অ্যালাইনমেন্ট (alignment) সেট করে।
সারাংশ
Apache POI ব্যবহার করে Excel ফাইলের মধ্যে টেবিল তৈরি এবং ডেটা ইনসার্ট করা একটি সহজ প্রক্রিয়া। আপনি XSSF বা HSSF ব্যবহার করে .xlsx বা .xls ফরম্যাটে টেবিল তৈরি করতে পারেন এবং CellStyle ব্যবহার করে সেলগুলির ফরম্যাটিং করতে পারেন। এই প্রক্রিয়া দিয়ে আপনি ডেটাবেস বা অন্যান্য উৎস থেকে ডেটা নিয়ে Excel ফাইল তৈরি করতে পারবেন এবং সেই ফাইলটি ব্যবহারকারীদের জন্য প্রস্তুত করতে পারবেন।
Read more